package com.shen.llmtool.common.utils;

import lombok.extern.slf4j.Slf4j;

import java.nio.charset.StandardCharsets;
import java.util.zip.CRC32;

/**
 * CRC32算法生成工具类
 */
@Slf4j
public class CRC32Utils {
    private CRC32Utils() {
    }

    /**
     * 计算字符串的CRC32校验值
     *
     * @param inputStr 输入字符串
     * @return CRC32校验值(无符号32位整数, 以long形式返回)
     */
    public static Long crc32AsLong(String inputStr) {
        if (inputStr == null) {
            log.warn("[crc32算法转换] 入参不能为空");
            return 0L;
        }
        CRC32 crc32 = new CRC32();
        byte[] bytes = inputStr.getBytes(StandardCharsets.UTF_8);
        crc32.update(bytes);
        return crc32.getValue();
    }
}
